
const f = function(options) {
  return options
}

/*
const f1 = (options) => {
  return options
}*/
const f1 = (options) => options
// console.log(f({}))
// console.log(f1({name: "f1"}))

const reversMsg = (msg) => ({ key: msg.split("").reverse().join("") })
// {key: "!cnuf olleh"}
// console.log(reversMsg("hello func!"))

// 只有一个参数情况下才可以省略 参数的 ()
// const isEven = (n) => n % 2 === 0
// console.log(isEven(12))
// console.log(isEven(11))


// let arr = [99, 12, 34, 22, 1, 9]
// arr.sort((a, b) => a - b)
// console.log(arr)


function f2() {
  console.log(this)
  // function 谁调用这个函数谁就是this
  // 箭头函数  在哪定义this就是谁
  /*setTimeout(() => {
    console.log(this)
  }, 100)*/

  setTimeout(function () {
    console.log(this)
  }, 100)
}
// f2()
f2.apply({ x: 99 })
// f2.call({ x: 99 })




/*
// function foo({ x, y = "我是默认的Y" } = {}) {
function foo(...other) {
  // console.log(arguments)
  console.log(other)
  // let x = options.x
  // let {x} = options
  // console.log("x:", x)
  // console.log("y:", y)
  // return options
}

foo(1, 33, 23)

// console.log(foo({})) // {}
// console.log(foo({x : 1})) // {x : 1}
// console.log(foo()) // undefined {}
*/





